package com.muyu.danmo.service;


import com.muyu.common.core.domain.Result;
import com.muyu.danmo.domain.DanmoInformationCopy1;
import com.muyu.danmo.domain.dto.PersonAddDTO;
import com.muyu.danmo.domain.vo.PersonBaseInfoVO;
import com.muyu.danmo.domain.vo.PersonNameVO;
import com.muyu.danmo.req.DanmoProvincesCities;

import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

/**
 * 个人信息新Service接口
 * 
 * @author yangle
 * @date 2024-12-10
 */
public interface IDanmoInformationCopy1Service 
{
    /**
     * 查询个人信息新
     *
     * @return 个人信息新
     */
    public Result selectDanmoInformationCopy1ById(DanmoInformationCopy1 danmoInformationCopy1);

    /**
     * 查询个人信息新列表
     * 
     * @param danmoInformationCopy1 个人信息新
     * @return 个人信息新集合
     */
    public List<DanmoInformationCopy1> selectDanmoInformationCopy1List(DanmoInformationCopy1 danmoInformationCopy1);


    /**
     * 查询个人信息新列表
     *
     * @param danmoInformationCopy1 个人信息新
     * @return 个人信息新集合
     */
     List<PersonNameVO> getPersonName(DanmoInformationCopy1 danmoInformationCopy1);

    /**
     * 新增个人信息新
     * 
     * @param danmoInformationCopy1 个人信息新
     * @return 结果
     */
    public Result insertDanmoInformationCopy1(DanmoInformationCopy1 danmoInformationCopy1) throws UnsupportedEncodingException;

    /**
     * 修改个人信息新
     * 
     * @param danmoInformationCopy1 个人信息新
     * @return 结果
     */
    public Result updateDanmoInformationCopy1(DanmoInformationCopy1 danmoInformationCopy1) throws UnsupportedEncodingException;

    /**
     * 批量删除个人信息新
     * 
     * @param ids 需要删除的个人信息新主键集合
     * @return 结果
     */
    public Result deleteDanmoInformationCopy1ByIds(Long[] ids);

    /**
     * 删除个人信息新信息
     * 
     * @param id 个人信息新主键
     * @return 结果
     */
    public Result deleteDanmoInformationCopy1ById(Long id);

    List<String> selectListyears(DanmoInformationCopy1 danmoInformationCopy1);

    List<Long> selectSuccessive(DanmoInformationCopy1 danmoInformationCopy1);

    List<Map<String, List<DanmoInformationCopy1>>> selectList(DanmoInformationCopy1 danmoInformationCopy1);

    List<Map<String, Object>> select(DanmoInformationCopy1 danmoInformationCopy1);


    List<Map<String, Object>> selectCouncil(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoProvincesCities<List<Map<String, List<PersonBaseInfoVO>>>> selectCounty(DanmoInformationCopy1 danmoInformationCopy1);

    List<Map<String, Object>> queryProvincesCities(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoProvincesCities selectCouncilCounty(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoProvincesCities selectGreekCouncil(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoProvincesCities checkClubsList(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoProvincesCities<List<Map<String, List<DanmoInformationCopy1>>>> selectCity(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoProvincesCities selectCouncilCity(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoProvincesCities selectProvince(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoProvincesCities<List<Map<String, List<DanmoInformationCopy1>>>> selectProvinceList(DanmoInformationCopy1 danmoInformationCopy1);

    List<Map<String, List<DanmoInformationCopy1>>> searchAncientNames(DanmoInformationCopy1 danmoInformationCopy1);

    List<Map<String, List<DanmoInformationCopy1>>> CheckCalligraphyEnthusiasts(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoInformationCopy1 selectDanmoInformationReq(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoInformationCopy1 selectUser(DanmoInformationCopy1 danmoInformationCopy1);

    Result addDanmoInformation(DanmoInformationCopy1 danmoInformationCopy1);

    DanmoInformationCopy1 obtainPersonal(DanmoInformationCopy1 danmoInformationCopy1);

    Result addFurther(DanmoInformationCopy1 danmoInformationCopy1, Long id) throws UnsupportedEncodingException;


    /**
     * 新增个人信息
     * @param personAddDTO
     */
    void add(PersonAddDTO personAddDTO);

    List<DanmoInformationCopy1> selectUserIdList(List<Long> longs);
}
